<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script>
    let obj = {
      name: 'wsh',
      age: 18
    }
    // 可以进行选择性转换
    // []中的属性不会进行转换
    // console.log(JSON.stringify(obj, ['name'])); // {"name":"wsh"} 只打印了name属性

    // 第二个参数也可以传一个回调函数,参数1: key, 参数2: value
    // console.log(JSON.stringify(obj, (key, value) => {
    //   if (key === 'age') {
    //     return undefined
    //   }
    //   return value
    // }));

    // 格式化, 第三个参数代表缩进
    // console.log(JSON.stringify(obj, null, 2));

    // 阻止转换JSON
    // 如果对象中有toJSON方法,转换时会执行此方法
    let obj1 = {
      name: 'wsh',
      age: 18,
      toJSON() {
        return 'error'
      }
    }
    console.log(JSON.stringify(obj1)); // 'error'
  </script>
</body>
</html>